#ifndef VBORENDERING_H
#define VBORENDERING_H

#include "Config/Export.h"
#include "Core/IRenderBox.h"
#include "Core/TBuffer.h"

namespace blue {

class SHARED VBORenderBox : public IRenderBox
{
    public:

        VBORenderBox();

        virtual ~VBORenderBox();

        virtual void initialize(GLenum mode, GLsizeiptr sizei = 0);

        virtual void addBuffer(GLenum type, const void *data, GLsizeiptr size, int count);

	virtual void update(GLenum type, const void *data, GLsizeiptr size);

        virtual void setParam(rdr_param_t param, bool state);

        virtual void draw();

    private:

        IndexBuffer *_index;
        VertexBuffer *_posV, *_texV, *_colV, *_norV;
        GLenum _mode;
        GLsizei _vertexArraySize;
        GLsizei _count;
};

}

#endif
